home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / os20 / wb / TSIcon.lha / TSIcon.h.c < prev    next >
C/C++ Source or Header  |  1993-06-09  |  6KB  |  279 lines

  1. #ifndef TSICON_H
  2. #define TSICON_H
  3.  
  4. #define INTUI_V36_NAMES_ONLY
  5.  
  6. #include <exec/types.h>
  7.  
  8. #include <clib/alib_protos.h>
  9.  
  10. extern struct IntuitionBase *IntuitionBase;
  11. #include <clib/intuition_protos.h>
  12. #include <pragmas/intuition_pragmas.h>
  13.  
  14. #include <clib/exec_protos.h>
  15. extern struct ExecBase *SysBase;
  16. #include <pragmas/exec_pragmas.h>
  17.  
  18. extern struct DosLibrary *DOSBase;
  19. #include <clib/dos_protos.h>
  20. #include <pragmas/dos_pragmas.h>
  21.  
  22. /* Below is undefined in 2.02 header file dos/dos.h */
  23. #ifndef DOS_RDARGS
  24. #define DOS_RDARGS 5
  25. #endif
  26.  
  27. extern struct Library *WorkbenchBase;
  28. #include <clib/wb_protos.h>
  29. #include <pragmas/wb_pragmas.h>
  30.  
  31. extern struct Library *IconBase;
  32. #include <clib/icon_protos.h>
  33. #include <pragmas/icon_pragmas.h>
  34.  
  35. extern struct Library *CxBase;
  36. #include <clib/commodities_protos.h>
  37. #include <pragmas/commodities_pragmas.h>
  38.  
  39. extern struct Library *AslBase;
  40. #include <clib/asl_protos.h>
  41. #include <pragmas/asl_pragmas.h>
  42.  
  43. extern struct Library *UtilityBase;
  44. #include <clib/utility_protos.h>
  45. #include <pragmas/utility_pragmas.h>
  46. /* Below is not in the 2.02 version of clib/utility_protos.h
  47.    pragmas/utility_pragmas.h */
  48. #ifndef INCLUDES204
  49. LONG Stricmp(UBYTE *string1,UBYTE *string2);
  50. #pragma libcall UtilityBase Stricmp A2 9802
  51. #endif
  52.  
  53. #include <clib/rexxsyslib_protos.h>
  54. extern struct RxsLib *RexxSysBase;
  55. #include <pragmas/rexxsyslib_pragmas.h>
  56. #include <rexx/errors.h>
  57.  
  58. #include <Workbench/icon.h>
  59. #include <Workbench/Startup.h>
  60. #include <Workbench/Workbench.h>
  61.  
  62. #include <graphics/gfxbase.h>
  63. extern struct GfxBase *GfxBase ;
  64. #include <clib/graphics_protos.h>
  65. #include <pragmas/graphics_pragmas.h>
  66.  
  67. extern struct Library *GadToolsBase;
  68. #include <clib/gadtools_protos.h>
  69. #include <pragmas/gadtools_pragmas.h>
  70. /* Below are not in 2.02 version of libraries/gadtools.h */
  71. #ifndef GT_Underscore
  72. #define GT_Underscore GT_TagBase+64
  73. #endif
  74. #ifndef GTMN_FullMenu
  75. #define GTMN_FullMenu GT_TagBase+62
  76. #endif
  77. #ifndef INCLUDES204                         
  78. #ifdef ARROWIDCMP
  79. #undef ARROWIDCMP
  80. #endif
  81. #define ARROWIDCMP    (IDCMP_GADGETUP | IDCMP_GADGETDOWN |\
  82.         IDCMP_INTUITICKS | IDCMP_MOUSEBUTTONS)
  83. #ifdef LISTVIEWIDCMP
  84. #undef LISTVIEWIDCMP
  85. #endif
  86. #define LISTVIEWIDCMP (IDCMP_GADGETUP | IDCMP_GADGETDOWN |\
  87.         IDCMP_MOUSEMOVE | ARROWIDCMP)
  88. #ifdef BUTTONIDCMP
  89. #undef BUTTONIDCMP
  90. #endif
  91. #define BUTTONIDCMP (IDCMP_GADGETUP)
  92. #endif
  93.  
  94. #include <intuition/gadgetclass.h>
  95.  
  96. #include <exec/memory.h>
  97.  
  98. #include <devices/timer.h>
  99.  
  100. #include <string.h>
  101. #include <stdlib.h>
  102. #include <stdio.h>
  103. #include <fcntl.h>
  104. #include <ios1.h>
  105.  
  106. /* Control structure for each AppIcon/Window */
  107. struct IN {
  108.    struct   Node        IN_Node;        /* Short name is in ln_Name */
  109.    struct   DiskObject *IN_DiskObject;
  110.    struct   AppIcon    *IN_AppIcon;
  111.    struct   AppWindow  *IN_AppWindow;
  112.     STRPTR                       IN_FName;
  113.    struct   List            IN_AnimList;/* List of ANode */
  114.    struct   Window     *IN_W;
  115.    struct   Gadget      *IN_G;
  116.    struct    ANode          *IN_CurrANode;
  117.                 ULONG            IN_LastSeconds,IN_LastMicros,IN_YPos;
  118. };
  119.  
  120. struct ANode {
  121.    struct   Node        AN_Node;
  122.    struct   DiskObject *AN_DiskObject;
  123.     ULONG    AN_CurrentTime; /* Time to wait to display in 1/10s */
  124.     ULONG    AN_WaitTime;
  125.             
  126. };
  127.  
  128. #define CPORTNAME "_TSICON"     /* Used for Control when run twice */
  129. #define RPORTNAME "TSICON"         /* The arexx port */
  130.  
  131. enum IconMessageType {  /* Internal control messages */
  132.     IMT_Quit,
  133.     IMT_Add,
  134.     IMT_Show,
  135.     IMT_Enable,
  136.     IMT_Disable,
  137.     IMT_Hide,
  138.     IMT_Add_Add,
  139.     IMT_Remove
  140. };
  141.  
  142. struct IconMessage {
  143.     struct    Message               IM_Message;
  144.     enum        IconMessageType    IM_Type;
  145.       STRPTR                          IM_Name;
  146. };
  147.  
  148. #define CX_MESSAGE_POPUP 1    /* Hotkey Msg IDs */
  149. #define CX_MESSAGE_WPOPUP 2
  150.  
  151. struct CommandEntry {   /* Used for Arexx commands */
  152.    STRPTR CommandName;
  153. };
  154.  
  155. /* dos rdargs stuff - template depends on if already running */
  156. #define RD_Quit 0L
  157. #define RD_Add 1L
  158. #define RD_Remove 2L
  159. #define RD_Show 3L
  160. #define RD_Hide 4L
  161. #define RD_Enable 5L
  162. #define RD_Disable 6L
  163. #define RD_Files 7L
  164. #define Template "QUIT/S,ADD/S,REMOVE/S,SHOW/S,HIDE/S,ENABLE/S,DISABLE/S,FILES/M"
  165. #define Template1 "SHOW/S,DISABLE/S,FILES/M"
  166. #define RD_Show1 0L
  167. #define RD_Disable1 1L
  168. #define RD_Files1 2L
  169.  
  170. #define len 256
  171.  
  172. void mymain(char *line);
  173. void DoMessage(struct AppMessage *AppMessage);
  174. void SError(STRPTR ErrorMessage);
  175. BOOL DoIt(struct IN *IN,char *DirName,char *FileName);
  176. BOOL AddObject(STRPTR ObjectName,BOOL JustAdd);
  177. BOOL AddIcons(struct IN *IN);
  178. void RemoveIcons(struct IN *IN);
  179. BOOL DeleteObject(STRPTR filepart);
  180. BOOL SafePutToPort(struct IconMessage *message, STRPTR portname,struct MsgPort *ReplyPort);
  181. void About(void);
  182. void DeleteNum(ULONG Num);
  183. void Show(BOOL defaultscreen);
  184. void Hide(void);
  185. void Up(void);
  186. void Down(void);
  187. void Add(void);
  188. void Delete(void);
  189. void IEnable(void);
  190. void IDisable(void);
  191. BOOL SafeAddObject(STRPTR ObjectName,BOOL JustAdd);
  192. void StripIntuiMessages(struct MsgPort *mp,struct Window *win);
  193. void CloseWindowSafely(struct Window *win);
  194. void WinDisable(void);
  195. void WinEnable(void);
  196. int FindCommand(char *command);
  197. BOOL ListObjects(char *FileName);
  198.  
  199. /* Various defines originally set up by TplEdit */
  200.  
  201. #define WLEF      0
  202. #define WTOP    204
  203. #define WWID    290
  204. #define WHEI    171
  205.  
  206. #define GLEF_0     14
  207. #define GTOP_0    105
  208. #define GWID_0     70
  209. #define GHEI_0     13
  210.  
  211. #define GLEF_1     14
  212. #define GTOP_1     29
  213. #define GWID_1     70
  214. #define GHEI_1     13
  215.  
  216. #define GLEF_2    108
  217. #define GTOP_2     28
  218. #define GWID_2    173
  219. #define GHEI_2    109
  220.  
  221. #define GLEF_3     14
  222. #define GTOP_3     49
  223. #define GWID_3     70
  224. #define GHEI_3     13
  225.  
  226. #define GLEF_4     14
  227. #define GTOP_4     85
  228. #define GWID_4     70
  229. #define GHEI_4     13
  230.  
  231. #define GLEF_5    212
  232. #define GTOP_5    140
  233. #define GWID_5     69
  234. #define GHEI_5     21
  235.  
  236. #define GLEF_6    108
  237. #define GTOP_6    140
  238. #define GWID_6     69
  239. #define GHEI_6     21
  240.  
  241. #define GLEF_7      8
  242. #define GTOP_7    132
  243. #define GWID_7     85
  244. #define GHEI_7     29
  245.  
  246. #define BLEF_0      8
  247. #define BTOP_0     24
  248. #define BWID_0     85
  249. #define BHEI_0    101
  250.  
  251. #define GAD_R_Disable    0
  252. #define GAD_R_Hide    1
  253. #define GAD_R_List    2
  254. #define GAD_R_Quit    3
  255. #define GAD_R_Enable    4
  256. #define GAD_R_Delete    5
  257. #define GAD_R_Add        6
  258. #define GAD_R_About    7
  259.  
  260. #define ALLGADS        8
  261.  
  262. #define NG_R_Disable    (NGAry + GAD_R_Disable)
  263. #define NG_R_Hide        (NGAry + GAD_R_Hide)
  264. #define NG_R_List        (NGAry + GAD_R_List)
  265. #define NG_R_Quit        (NGAry + GAD_R_Quit)
  266. #define NG_R_Enable    (NGAry + GAD_R_Enable)
  267. #define NG_R_Delete    (NGAry + GAD_R_Delete)
  268. #define NG_R_Add        (NGAry + GAD_R_Add)
  269. #define NG_R_About    (NGAry + GAD_R_About)
  270.  
  271. void
  272. FreeGads(void);
  273. struct Gadget *
  274. InitGads(struct Screen *Scr);
  275. void
  276. drawborders(void);
  277.  
  278. #endif
  279.